CREATE TABLE [dbo].[ContactMain]
(
[ContactKey] [uniqueidentifier] NOT NULL,
[ContactStatusCode] [nvarchar] (2) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[FullName] [nvarchar] (110) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[SortName] [nvarchar] (110) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,
[IsInstitute] [bit] NOT NULL,
[TaxIDNumber] [nvarchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[NoSolicitationFlag] [bit] NOT NULL,
[SyncContactID] [varchar] (20) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[UpdatedOn] [datetime] NOT NULL CONSTRAINT [DF_ContactMain_UpdatedOn] DEFAULT (getdate()),
[UpdatedByUserKey] [uniqueidentifier] NOT NULL,
[IsIDEditable] [bit] NULL,
[ID] [nvarchar] (12) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[PreferredAddressCategoryCode] [int] NOT NULL,
[IsSortNameOverridden] [bit] NOT NULL CONSTRAINT [DF_ContactMain_IsSortNameOverridden] DEFAULT ((0)),
[PrimaryMembershipGroupKey] [uniqueidentifier] NULL,
[MajorKey] [nvarchar] (30) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,
[AccessKey] [uniqueidentifier] NOT NULL,
[CreatedByUserKey] [uniqueidentifier] NOT NULL,
[CreatedOn] [datetime] NOT NULL,
[TextOnlyEmailFlag] [bit] NOT NULL CONSTRAINT [DF_ContactMain_TextOnlyEmailFlag] DEFAULT ((0)),
[ContactTypeKey] [uniqueidentifier] NOT NULL,
[OptOutFlag] [bit] NOT NULL CONSTRAINT [DF_ContactMain_OptOutFlag] DEFAULT ((0)),
[MarkedForDeleteOn] [datetime] NULL
) ON [PRIMARY]
GO
ALTER TABLE [dbo].[ContactMain] ADD CONSTRAINT [PK_ContactMain] PRIMARY KEY CLUSTERED ([ContactKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_ContactMain_AccessKey] ON [dbo].[ContactMain] ([AccessKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_ContactMain_IsInstitute] ON [dbo].[ContactMain] ([IsInstitute]) INCLUDE ([ContactKey], [ID], [SyncContactID]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_ContactMain_ContactStatusCode] ON [dbo].[ContactMain] ([ContactStatusCode]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_ContactMain_ContactTypeKey] ON [dbo].[ContactMain] ([ContactTypeKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_ContactMain_CreatedByUserKey] ON [dbo].[ContactMain] ([CreatedByUserKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_ContactMain_FullName] ON [dbo].[ContactMain] ([FullName]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_ContactMain_ID] ON [dbo].[ContactMain] ([ID]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_ContactMain_MajorKey] ON [dbo].[ContactMain] ([MajorKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [AK_ContactMain_PrimaryMembershipGroupKey] ON [dbo].[ContactMain] ([PrimaryMembershipGroupKey]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_ContactMain_SortName] ON [dbo].[ContactMain] ([SortName]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_ContactMain_SyncContactID] ON [dbo].[ContactMain] ([SyncContactID]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_ContactMain_TaxIDNumber] ON [dbo].[ContactMain] ([TaxIDNumber]) ON [PRIMARY]
GO
CREATE NONCLUSTERED INDEX [IX_ContactMain_UpdatedByUserKey] ON [dbo].[ContactMain] ([UpdatedByUserKey]) ON [PRIMARY]
GO
ALTER TABLE [dbo].[ContactMain] ADD CONSTRAINT [FK_ContactMain_AccessMain] FOREIGN KEY ([AccessKey]) REFERENCES [dbo].[AccessMain] ([AccessKey])
GO
ALTER TABLE [dbo].[ContactMain] ADD CONSTRAINT [FK_ContactMain_AddressCategoryRef_Preferred] FOREIGN KEY ([PreferredAddressCategoryCode]) REFERENCES [dbo].[AddressCategoryRef] ([AddressCategoryCode])
GO
ALTER TABLE [dbo].[ContactMain] ADD CONSTRAINT [FK_ContactMain_ContactStatusRef] FOREIGN KEY ([ContactStatusCode]) REFERENCES [dbo].[ContactStatusRef] ([ContactStatusCode])
GO
ALTER TABLE [dbo].[ContactMain] ADD CONSTRAINT [FK_ContactMain_ContactTypeRef] FOREIGN KEY ([ContactTypeKey]) REFERENCES [dbo].[ContactTypeRef] ([ContactTypeKey])
GO
ALTER TABLE [dbo].[ContactMain] ADD CONSTRAINT [FK_ContactMain_GroupMain_PrimaryMembership] FOREIGN KEY ([PrimaryMembershipGroupKey]) REFERENCES [dbo].[GroupMain] ([GroupKey])
GO
ALTER TABLE [dbo].[ContactMain] ADD CONSTRAINT [FK_ContactMain_UniformRegistry] FOREIGN KEY ([ContactKey]) REFERENCES [dbo].[UniformRegistry] ([UniformKey])
GO
ALTER TABLE [dbo].[ContactMain] ADD CONSTRAINT [FK_ContactMain_UserMain_CreatedBy] FOREIGN KEY ([CreatedByUserKey]) REFERENCES [dbo].[UserMain] ([UserKey])
GO
ALTER TABLE [dbo].[ContactMain] ADD CONSTRAINT [FK_ContactMain_UserMain_UpdatedBy] FOREIGN KEY ([UpdatedByUserKey]) REFERENCES [dbo].[UserMain] ([UserKey])
GO
GRANT REFERENCES ON [dbo].[ContactMain] TO [IMIS]
GRANT SELECT ON [dbo].[ContactMain] TO [IMIS]
GRANT INSERT ON [dbo].[ContactMain] TO [IMIS]
GRANT DELETE ON [dbo].[ContactMain] TO [IMIS]
GRANT UPDATE ON [dbo].[ContactMain] TO [IMIS]
GO